/**
 * @param {number[]} A
 * @param {number} m
 * @param {number[]} B
 * @param {number} n
 * @return {void} Do not return anything, modify A in-place instead.
 */
// var merge = function (A, m, B, n) {
//   let i = m - 1, j = n - 1, k = m + n - 1
//   while (i >= 0 && j >= 0) {
//     if (B[j] > A[i]) {
//       A[k] = B[j]
//       j--
//       k--
//     } else {
//       A[k] = A[i]
//       k--
//       i--
//     }
//   }
//   while (j >= 0) {
//     A[k] = B[j]
//     k--
//     j--
//   }
//   return A
// };



function merge(A, m, B, n) {
  let i = m - 1, j = n - 1, k = m + n - 1
  while (i >= 0 && j >= 0) {
    if (A[i] > B[j]) {
      A[k] = A[i]
      i--
      k--
    } else {
      A[k] = B[j]
      j--
      k--
    }
  }
  while (j >= 0) {
    A[k] = B[j]
    k--
    j--
  }
  return A
}

